package main

import "fmt"

/*
课后作业 1：计算多个人的平均体脂
实现完整的体脂计算器
连续输入三人的姓名、性别、身高、体重、年龄信息
计算每个人的 BMI、体脂率
输出：
每个人姓名、BMI、体脂率、建议
总人数、平均体脂率
https://www.sohu.com/a/82600953_114873
BMI = 体重（公斤） / 身高*身高（米）
体脂率= 1.2*BMI+0.23*年龄 - 5.4 - 10.8 * 性别（男1，女0）
*/

func main() {
	var names [3]string
	fmt.Print("姓名1：")
	fmt.Scanln(&names[0])
	fmt.Print("姓名2：")
	fmt.Scanln(&names[1])
	fmt.Print("姓名3：")
	fmt.Scanln(&names[2])
	var sexes [3]int8
	var tempsex string
	for {
		fmt.Print("性别1（男/女）：")
		fmt.Scanln(&tempsex)
		isok := false
		if tempsex == "男" {
			sexes[0] = 1
			isok = true
		} else if tempsex == "女" {
			sexes[0] = 0
			isok = true
		} else {
			fmt.Println("性别输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}
	for {
		fmt.Print("性别2（男/女）：")
		fmt.Scanln(&tempsex)
		isok := false
		if tempsex == "男" {
			sexes[1] = 1
			isok = true
		} else if tempsex == "女" {
			sexes[1] = 0
			isok = true
		} else {
			fmt.Println("性别输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}
	for {
		fmt.Print("性别3（男/女）：")
		fmt.Scanln(&tempsex)
		isok := false
		if tempsex == "男" {
			sexes[2] = 1
			isok = true
		} else if tempsex == "女" {
			sexes[2] = 0
			isok = true
		} else {
			fmt.Println("性别输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}

	var hights [3]float64
	for {
		fmt.Print("身高1（cm）：")
		fmt.Scanln(&hights[0])
		isok := false
		if hights[0] < 250 && hights[0] > 100 {
			isok = true
		} else {
			fmt.Println("身高输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}
	for {
		fmt.Print("身高2（cm）：")
		fmt.Scanln(&hights[1])
		isok := false
		if hights[1] < 250 && hights[1] > 100 {
			isok = true
		} else {
			fmt.Println("身高输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}
	for {
		fmt.Print("身高3（cm）：")
		fmt.Scanln(&hights[2])
		isok := false
		if hights[2] < 250 && hights[2] > 100 {
			isok = true
		} else {
			fmt.Println("身高输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}

	var weights [3]float64
	for {
		fmt.Print("体重1（kg）：")
		fmt.Scanln(&weights[0])
		isok := false
		if weights[0] < 150 && weights[0] > 30 {
			isok = true
		} else {
			fmt.Println("体重输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}
	for {
		fmt.Print("体重2（kg）：")
		fmt.Scanln(&weights[1])
		isok := false
		if weights[1] < 150 && weights[1] > 30 {
			isok = true
		} else {
			fmt.Println("体重输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}
	for {
		fmt.Print("体重3（kg）：")
		fmt.Scanln(&weights[2])
		isok := false
		if weights[2] < 150 && weights[2] > 30 {
			isok = true
		} else {
			fmt.Println("体重输入不正确请重新输入！")
		}
		if isok {
			break
		}
	}

	var ages [3]int16
	for {
		fmt.Print("年龄1：")
		fmt.Scanln(&ages[0])
		isok := false
		if ages[0] < 18 {
			fmt.Println("年龄小于18岁不计算体脂,请重新录入！")
		} else if ages[0] > 120 {
			fmt.Println("年龄大于120岁不计算体脂，请重新录入")
		} else {
			isok = true
		}
		if isok {
			break
		}
	}
	for {
		fmt.Print("年龄2：")
		fmt.Scanln(&ages[1])
		isok := false
		if ages[1] < 18 {
			fmt.Println("年龄小于18岁不计算体脂,请重新录入！")
		} else if ages[1] > 120 {
			fmt.Println("年龄大于120岁不计算体脂，请重新录入")
		} else {
			isok = true
		}
		if isok {
			break
		}
	}
	for {
		fmt.Print("年龄3：")
		fmt.Scanln(&ages[2])
		isok := false
		if ages[2] < 18 {
			fmt.Println("年龄小于18岁不计算体脂,请重新录入！")
		} else if ages[2] > 120 {
			fmt.Println("年龄大于120岁不计算体脂，请重新录入")
		} else {
			isok = true
		}
		if isok {
			break
		}
	}

	//BMI = 体重（公斤） / 身高*身高（米）
	//体脂率= 1.2*BMI+0.23*年龄 - 5.4 - 10.8 * 性别（男1，女0）
	var BMI float64
	var faterate float64
	for i := 0; i < 3; i++ {

		BMI = weights[i] / (hights[i] * hights[i])
		faterate = 1.2*BMI + 0.23*float64(ages[i]) - 5.4 - 10.8*float64(sexes[i])

		if sexes[i] == 0 {
			if ages[i] >= 18 && ages[i] <= 39 {
				if faterate < 0.2 {
					fmt.Printf("%s你的体脂是：%d，偏瘦\n", names[i], faterate)
				} else if faterate < 0.27 {
					fmt.Printf("%s你的体脂是：%d，标准\n", names[i], faterate)
				} else if faterate < 0.34 {
					fmt.Printf("%s你的体脂是：%d，偏胖\n", names[i], faterate)
				} else if faterate < 0.39 {
					fmt.Printf("%s,你的体脂是：%d，肥胖\n", names[i], faterate)
				} else {
					fmt.Printf("%s你的体脂是：%d，严重肥胖\n", names[i], faterate)
				}
			} else if ages[i] > 40 && ages[i] < 60 {
				if faterate < 0.21 {
					fmt.Printf("%s你的体脂是：%d，偏瘦\n", names[i], faterate)
				} else if faterate < 0.28 {
					fmt.Printf("%s你的体脂是：%d，标准\n", names[i], faterate)
				} else if faterate < 0.35 {
					fmt.Printf("%s你的体脂是：%d，偏胖\n", names[i], faterate)
				} else if faterate < 0.40 {
					fmt.Printf("%s,你的体脂是：%d，肥胖\n", names[i], faterate)
				} else {
					fmt.Printf("%s你的体脂是：%d，严重肥胖\n", names[i], faterate)

				}
			} else {
				if faterate < 0.22 {
					fmt.Printf("%s你的体脂是：%d，偏瘦\n", names[i], faterate)
				} else if faterate < 0.29 {
					fmt.Printf("%s你的体脂是：%d，标准\n", names[i], faterate)
				} else if faterate < 0.36 {
					fmt.Printf("%s,你的体脂是：%d，偏胖\n", names[i], faterate)
				} else if faterate < 0.41 {
					fmt.Printf("%s,你的体脂是：%d，肥胖\n", names[i], faterate)
				} else {
					fmt.Printf("%s你的体脂是：%d，严重肥胖\n", names[i], faterate)

				}
			}
		} else {
			if ages[i] >= 18 && ages[i] <= 39 {
				if faterate < 0.1 {
					fmt.Printf("%s你的体脂是：%d，偏瘦\n", names[i], faterate)
				} else if faterate < 0.16 {
					fmt.Printf("%s你的体脂是：%d，标准\n", names[i], faterate)
				} else if faterate < 0.21 {
					fmt.Printf("%s你的体脂是：%d，偏胖\n", names[i], faterate)
				} else if faterate < 0.26 {
					fmt.Printf("%s,你的体脂是：%d，肥胖\n", names[i], faterate)
				} else {
					fmt.Printf("%s你的体脂是：%d，严重肥胖\n", names[i], faterate)
				}

			} else if ages[i] > 40 && ages[i] < 60 {
				if faterate < 0.11 {
					fmt.Printf("%s你的体脂是：%d，偏瘦\n", names[i], faterate)
				} else if faterate < 0.17 {
					fmt.Printf("%s你的体脂是：%d，标准\n", names[i], faterate)
				} else if faterate < 0.22 {
					fmt.Printf("%s你的体脂是：%d，偏胖\n", names[i], faterate)
				} else if faterate < 0.27 {
					fmt.Printf("%s,你的体脂是：%d，肥胖\n", names[i], faterate)
				} else {
					fmt.Printf("%s你的体脂是：%d，严重肥胖\n", names[i], faterate)
				}
			} else {
				if faterate < 0.12 {
					fmt.Printf("%s你的体脂是：%d，偏瘦\n", names[i], faterate)
				} else if faterate < 0.18 {
					fmt.Printf("%s你的体脂是：%d，标准\n", names[i], faterate)
				} else if faterate < 0.23 {
					fmt.Printf("%s你的体脂是：%d，偏胖\n", names[i], faterate)
				} else if faterate < 0.28 {
					fmt.Printf("%s,你的体脂是：%d，肥胖\n", names[i], faterate)
				} else {
					fmt.Printf("%s你的体脂是：%d，严重肥胖\n", names[i], faterate)
				}
			}
		}
	}
}
